home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ccdl150l.zip / IO / FREAD.SRC < prev    next >
Text File  |  1997-03-17  |  2KB  |  106 lines

  1.     SECTION    code
  2.     XDEF    _fread
  3. ;
  4. ; Line 8:    {
  5. ;
  6. _fread:
  7.     LINK    A6,#$0
  8.     MOVEM.L    D3/D4/D5/D6/D7/A2/A3,-(A7)
  9.     MOVEA.L    ($14,A6),A2
  10.     MOVE.L    ($C,A6),D5
  11.     MOVE.L    ($10,A6),D6
  12. ;
  13. ; Line 10:        int len = count * size,i;
  14. ;
  15.     MOVE.L    D6,-(A7)
  16.     MOVE.L    D5,-(A7)
  17.     BSR    __mulu
  18.     ADDQ.W    #$8,A7
  19.     MOVE.L    D0,D7
  20. ;
  21. ; Line 11:        char *lbuf = buf;
  22. ;
  23.     MOVEA.L    ($8,A6),A3
  24. ;
  25. ; Line 12:        if (stream->token != 0x444c)
  26. ;
  27.     CMPI.W    #$444C,($1C,A2)
  28.     BEQ    L_0
  29. ;
  30. ; Line 13:            return 0;
  31. ;
  32.     MOVEQ    #$0,D0
  33.     BRA    L_2
  34. L_0:
  35. ;
  36. ; Line 14:        if (!(stream->flags & 0x0001                   )) {
  37. ;
  38.     MOVE.L    ($4,A2),D0
  39.     ANDI.L    #$1,D0
  40.     TST.L    D0
  41.     BNE    L_3
  42. ;
  43. ; Line 15:            stream->flags |= 0x0010                   ;
  44. ;
  45.     ORI.L    #$10,($4,A2)
  46. ;
  47. ; Line 16:            return 0;
  48. ;
  49.     MOVEQ    #$0,D0
  50.     BRA    L_2
  51. L_3:
  52.     MOVEQ    #$0,D3
  53.     BRA    L_7
  54. L_5:
  55. ;
  56. ; Line 19:            rv = _basegetc(stream);
  57. ;
  58.     MOVE.L    A2,-(A7)
  59.     BSR    __basegetc
  60.     ADDQ.W    #$4,A7
  61.     MOVE.L    D0,D4
  62. ;
  63. ; Line 20:            if (rv == (-1)             )
  64. ;
  65.     CMPI.L    #$FFFFFFFF,D4
  66.     BNE    L_8
  67. ;
  68. ; Line 21:                return i / size;
  69. ;
  70.     MOVE.L    D3,-(A7)
  71.     MOVE.L    D5,-(A7)
  72.     BSR    __divu
  73.     ADDQ.W    #$8,A7
  74.     BRA    L_2
  75. L_8:
  76. ;
  77. ; Line 22:            *lbuf++ = (char) rv;
  78. ;
  79.     MOVEA.L    A3,A0
  80.     ADDQ.W    #$1,A3
  81.     MOVE.B    D4,(A0)
  82. ;
  83. ; Line 23:        }
  84. ;
  85.     ADDQ.L    #$1,D3
  86. L_7:
  87. ;
  88. ; Line 18:        for (i=0; i < len; i++) {
  89. ;
  90.     CMP.L    D7,D3
  91.     BLT    L_5
  92. L_6:
  93. ;
  94. ; Line 24:        return count;
  95. ;
  96.     MOVE.L    D6,D0
  97. L_2:
  98.     MOVEM.L    (A7)+,D3/D4/D5/D6/D7/A2/A3
  99.     UNLK    A6
  100.     RTS
  101.     SECTION    data
  102.     SECTION    bss
  103.     XREF    __divu
  104.     XREF    __basegetc
  105.     XREF    __mulu
  106.